package com.xing.algorithm.array;

public class RmoveDuplicates {

    public static int removeDuplicates(int[] nums) {
//        int dupindex = -1;
//
//        for(int i=0; i<nums.length - 1; i++) {
//
//            if(i+1 <= nums.length - 1) {
//
//                if(nums[i] != Integer.MAX_VALUE && nums[i] == nums[i+1]) {
//                    dupindex = i;
//                }
//
//                if(dupindex != -1) {
//                    for(int k = i+1; k < nums.length; k ++) {
//                        if(nums[dupindex] == nums[k]) {
//                            nums[k] = Integer.MAX_VALUE;
//                        } else {
//                            dupindex = -1;
//                            break;
//                        }
//                    }
//                }
//
//            }
//
//        }
//
//        int len = 0;
//        int index = 0;
//        for(int j = 0; j < nums.length ; j++) {
//            if(nums[j] != Integer.MAX_VALUE) {
//                len ++;
//                nums[index++] = nums[j];
//            }
//        }
//
//        return len;
        if(nums == null || nums.length==0)
            return 0;
        int index = 1;
        for(int i=1;i< nums.length;i++)
        {
            if(nums[i]!=nums[i-1])
            {
                nums[index]=nums[i];
                index++;
            }
        }
        return index;
    }

    public static void main(String[] args) {
        int[] nums = new int[]{0,0,1,1,1,2,2,3,3,4};
        int length = removeDuplicates(nums);

        for (int i = 0; i < length; i++) {
            System.out.println(nums[i]);
        }
    }
}